{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2-2维kmeans"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import scipy.io as sio"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         X1        X2\n",
      "0  1.842080  4.607572\n",
      "1  5.658583  4.799964\n",
      "2  6.352579  3.290854\n",
      "3  2.904017  4.612204\n",
      "4  3.231979  4.939894\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n71w2MTGBu+66C7t27cKtt95a7+HUhe9+97vYv38/9u3bh/e///145JFHsHLlynoPyzOuvPJK/PKX\nvyhNOJsAAAH/SURBVISmabhw4QLm5+fR3d1d72F5SiwWw7JlywAAXV1dkGXZbJzlFW0R5lXSuawV\nefbZZ5FIJPD000/j6aefBgB861vfasvFo3bluuuuw29+8xvceuut0DQNe/bsabtc/p/92Z9h9+7d\n+PSnPw1JkvDFL34RkUjE0zGwlwIhhHhEW6QUCCGkEaDgEkKIR1BwCSHEIyi4hBDiERRcQgjxCAou\naTleeeUVXHPNNZicnDSP/fM//zP+6q/+yvz+iSeewJNPPlmP4ZE2hoJLWo4/+IM/wA033ICvfvWr\nAPRil+9///v4+7//e8zOzmL37t349re/XedRknaEPlzSkmSzWezYsQOf/OQnsX//fjzyyCP40Ic+\nhB//+McYHx9HKpWCz+ezRb2EuE1bVJqR9iMYDOLrX/86brrpJvzFX/wFPvShDwEAPvGJTwAA0wmk\nLjClQFqWo0ePYvny5Xj55Zchy3K9h0MIBZe0Ju+88w6efPJJPPfccwgGg3jmmWfqPSRCKLik9chk\nMvjiF7+IXbt24ZJLLsHDDz+M/fv347XXXqv30EibQ8ElLcdDDz2EjRs34qabbgIArFq1Cl/5ylew\na9cuW19kQryGLgVCCPEIRriEEOIRFFxCCPEICi4hhHgEBZcQQjyCgksIIR5BwSWEEI+g4BJCiEdQ\ncAkhxCP+P2L2y38M5H+9AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa5ba438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mat = sio.loadmat('./data/ex7data2.mat')\n",
    "data2 = pd.DataFrame(mat.get('X'), columns=['X1', 'X2'])\n",
    "print(data2.head())\n",
    "\n",
    "sns.set(context=\"notebook\", style=\"white\")\n",
    "sns.lmplot('X1', 'X2', data=data2, fit_reg=False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 0. random init\n",
    "for initial centroids"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def combine_data_C(data, C):\n",
    "    data_with_c = data.copy()\n",
    "    data_with_c['C'] = C\n",
    "    return data_with_c\n",
    "\n",
    "\n",
    "# k-means fn --------------------------------\n",
    "def random_init(data, k):\n",
    "    \"\"\"choose k sample from data set as init centroids\n",
    "    Args:\n",
    "        data: DataFrame\n",
    "        k: int\n",
    "    Returns:\n",
    "        k samples: ndarray\n",
    "    \"\"\"\n",
    "    return data.sample(k).as_matrix()\n",
    "\n",
    "\n",
    "def _find_your_cluster(x, centroids):\n",
    "    \"\"\"find the right cluster for x with respect to shortest distance\n",
    "    Args:\n",
    "        x: ndarray (n, ) -> n features\n",
    "        centroids: ndarray (k, n)\n",
    "    Returns:\n",
    "        k: int\n",
    "    \"\"\"\n",
    "    distances = np.apply_along_axis(func1d=np.linalg.norm,  # this give you l2 norm\n",
    "                                    axis=1,\n",
    "                                    arr=centroids - x)  # use ndarray's broadcast\n",
    "    return np.argmin(distances)\n",
    "\n",
    "\n",
    "def assign_cluster(data, centroids):\n",
    "    \"\"\"assign cluster for each node in data\n",
    "    return C ndarray\n",
    "    \"\"\"\n",
    "    return np.apply_along_axis(lambda x: _find_your_cluster(x, centroids),\n",
    "                               axis=1,\n",
    "                               arr=data.as_matrix())\n",
    "\n",
    "\n",
    "def new_centroids(data, C):\n",
    "    data_with_c = combine_data_C(data, C)\n",
    "\n",
    "    return data_with_c.groupby('C', as_index=False).\\\n",
    "                       mean().\\\n",
    "                       sort_values(by='C').\\\n",
    "                       drop('C', axis=1).\\\n",
    "                       as_matrix()\n",
    "\n",
    "\n",
    "def cost(data, centroids, C):\n",
    "    m = data.shape[0]\n",
    "\n",
    "    expand_C_with_centroids = centroids[C]\n",
    "\n",
    "    distances = np.apply_along_axis(func1d=np.linalg.norm,\n",
    "                                    axis=1,\n",
    "                                    arr=data.as_matrix() - expand_C_with_centroids)\n",
    "    return distances.sum() / m\n",
    "\n",
    "\n",
    "def _k_means_iter(data, k, epoch=100, tol=0.0001):\n",
    "    \"\"\"one shot k-means\n",
    "    with early break\n",
    "    \"\"\"\n",
    "    centroids = random_init(data, k)\n",
    "    cost_progress = []\n",
    "\n",
    "    for i in range(epoch):\n",
    "        print('running epoch {}'.format(i))\n",
    "\n",
    "        C = assign_cluster(data, centroids)\n",
    "        centroids = new_centroids(data, C)\n",
    "        cost_progress.append(cost(data, centroids, C))\n",
    "\n",
    "        if len(cost_progress) > 1:  # early break\n",
    "            if (np.abs(cost_progress[-1] - cost_progress[-2])) / cost_progress[-1] < tol:\n",
    "                break\n",
    "\n",
    "    return C, centroids, cost_progress[-1]\n",
    "\n",
    "\n",
    "def k_means(data, k, epoch=100, n_init=10):\n",
    "    \"\"\"do multiple random init and pick the best one to return\n",
    "    Args:\n",
    "        data (pd.DataFrame)\n",
    "    Returns:\n",
    "        (C, centroids, least_cost)\n",
    "    \"\"\"\n",
    "\n",
    "    tries = np.array([_k_means_iter(data, k, epoch) for _ in range(n_init)])\n",
    "\n",
    "    least_cost_idx = np.argmin(tries[:, -1])\n",
    "\n",
    "    return tries[least_cost_idx]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 2.12857843,  5.01149793],\n",
       "       [ 1.53178107,  1.10054852],\n",
       "       [ 6.63262745,  3.14799183]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "random_init(data2, 3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. cluster assignment\n",
    "http://stackoverflow.com/questions/14432557/matplotlib-scatter-plot-with-different-text-at-each-data-point"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### find closest cluster experiment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 5.72395697,  3.04454219],\n",
       "       [ 4.06069132,  4.99503862],\n",
       "       [ 2.61428678,  5.22287414]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "init_centroids = random_init(data2, 3)\n",
    "init_centroids"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "x = np.array([1, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nMczNzUWVKlWUsiclVXBXqVRYunQpZs6ciSVLlsDMzAwjR45U5leVdB4tWLAAImI0yvPBBx8gNDQU\nCxYswJSjLykaAAAf7UlEQVQpU7B06VKo1Wp89dVXyqW4kir3l8TS0rLEPnXq1AkXL15E3759odVq\n4ezsrMxfnDFjBkJCQhAZGYmKFSsq/wcKqtXb2dkVe9k6MTERHTp0MPqOSvr7KbNS+h9//IGTJ0+i\nb9++uHbtGoYPH46ff/5ZGfJ81PNU7ZfoRcWq9C+f0j47AwICEBwcXK7v4KPn0+DBgxEcHKzchEB/\nT2Xe5VevXj306NEDKpUK9erVQ5UqVYyuLxPRk8Wq9FQoNzcXbdu2ZZh6gcXFxaFFixYMUy+BMj+Z\nt2zZgosXL2LatGlITU3FgwcPYGdn9zTaRvTSKqw+f+hMCu5m5KLa/7/L769UpS+8vEYvHisrqxLr\njNGLoUuXLuX6wnF68ZUZqPr06YOgoCAMGDAAKpUKs2fPLvZyHxE9OebmZhje0wG+bu/gflY+qlZ+\nhYVUiYieY2V+QqvVamWCJxE9XQVV6RmkiIied6yUTkRERGQiBioiIiIiEzFQEREREZmIgYqIiIjI\nRAxURERERCZioCIiIiIyEQMVERERkYkYqIiIiIhMxEBFREREZCIGKiIiIiITMVARERERmYiBioiI\niMhEDFREREREJmKgIiIiIjIRAxURERGRiRioiIiIiEzEQEVERERkIgYqIiIiIhMxUBERERGZiIGK\niIiIyEQMVEREREQmYqAiIiIiMhEDFREREZGJGKiIiIiITMRARURERGQiBioiIiIiEzFQEREREZmI\ngYqIiIjIRAxURERERCZioCIiIiIyEQMVERERkYkYqIiIiIhMxEBFREREZCIGKiIiIiITMVARERER\nmYiBioiIiMhEDFREREREJipXoLp37x6cnJxw+fLl/3V7iIiIiF44ZQYqrVaLqVOnokKFCk+jPURE\nREQvnDIDVXh4OLy9vWFvb/802kNERET0wik1UP3444+wtbVFu3btnlZ7iIiIiF44pQaqrVu34tdf\nf4Wvry/Onz+PSZMmIS0t7Wm1jYiIiOiFYFHakxs2bFD+7evri2nTpsHOzu5/3igiIiKiFwnLJhAR\nERGZqNQRqketW7fuf9kOIiIiohcWR6iIiIiITMRARURERGQiBioiIiIiEzFQEREREZmIgYqIiIjI\n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\niIiIiEzEQEVERERkIgYqIiIiIhMxUBERERGZiIGKiIiIyEQMVEREREQmsijtSa1Wi+DgYNy8eRMa\njQaffPIJnJ2dn1bbiIiIiF4IpQaqmJgYVKlSBV988QUyMjLQs2dPBioiIiKix5QaqFxdXdG1a1cA\ngIjA3Nz8qTSKiIiI6EVSaqCqVKkSAODBgwcYO3YsPv3006fSKCIiIqIXSZmT0lNSUjB48GB4enrC\nw8PjabSJiIiI6IVS6gjV3bt34efnh6lTp6J169ZPq01EREREL5RSR6iWLVuGrKwsLFmyBL6+vvD1\n9UVeXt7TahsRERHRC6HUEaqQkBCEhIQ8rbYQERERvZBY2JOIiIjIRAxURERERCZioCIiIiIyEQMV\nERERkYkYqIiIiIhMxEBFREREZCIGKiIiIiITMVARERERmYiBioiIiMhEDFREREREJmKgIiIiIjIR\nAxURERGRiRioiIiIiEzEQEVERERkIgYqIiIiIhMxUBERERGZiIGKiIiIyEQMVEREREQmYqAiIiIi\nMhEDFREREZGJGKiIiIiITMRARURERGQiBioiIiIiEzFQEREREZmIgYqIiIjIRAxURERERCZioCIi\nIiIyEQMVERERkYkYqIiIiIhMxEBFREREZCIGKiIiIiITMVARERERmei5CFQGgwFavfZPraPVa2Ew\nGP5HLSIiIiIqv2ceqAwGAyJ/X4N5B5dDU85QpdFrMe/gckT+voahioiIiJ65Zx6o9KLHA00OTqSc\nxfxyhCqNXov5B5fjRMpZPNDkQC/6p9RSIiIiouI980BlaW6Jz9qMxPs13yszVD0apt6v+R4+azMS\nluaWT7nFRERERMaeeaACAHU5QlVxYUrNMEVERETPgeciUAGlhyqGKSIiInqelStQnTx5Er6+vv/r\nthQbqh5qchmmiIiI6LlmUdYCK1euRExMDKysrJ5Ge5RQVRii/rltAgAwTBEREdFzq8wRqjp16mDx\n4sVPoy0Ktbklxjn6Gz02ztGfYYqIiIieS2UGqq5du8LCosyBrCdKo9fiq0OrjB776tCqctepIiIi\nInqanptJ6YUen4C+uteCcpVUICIiInpWnqtAVdzdfBXVVuWuU0VERET0LDw3gaq00gjlqVNFRERE\n9KyUK1DVqlULmzdv/p81ojx1phiqiIiI6Hn1zEeotH+iaGdxoUrLUEVERETP2DMPVOYqc1irK5W7\nztSjocpaXQnmKvOn1FIiIiKi4j3degjFMDMzw6iWQ6AXfbm/6FhtbomJbUbCXGUOM7NnngmJiIjo\nJffMAxVQEKrM/uRgWXnDFxEREdH/God3iIiIiEzEQEVERERkIgYqIiIiIhM90TlUer0eAHD79u0n\nuVkior+1ws/Mws9QInrxPNFAlZaWBgAYNGjQk9wsEdFLIS0tDXXr1n3WzSCiv0AlIvKkNpaXl4cz\nZ87Azs4O5uasD0VEVB56vR5paWlo3LgxKlSo8KybQ0R/wRMNVEREREQvI05KJyIiIjIRAxURERGR\niRioiIiIiEzEQEVERERkIgYqIiIiIhM914Hq5MmT8PX1fdbNeKq0Wi0CAgIwcOBA9OnTB3v27HnW\nTXqq9Ho9goKC4O3tjQEDBuDixYvPuklP3b179+Dk5ITLly8/66Y8db169YKvry98fX0RFBT0rJtD\nRFRuT7Sw55O0cuVKxMTEwMrK6lk35amKiYlBlSpV8MUXXyAjIwM9e/aEs7Pzs27WU/PLL78AADZt\n2oTDhw9j4cKFWLp06TNu1dOj1WoxderUl7IWUX5+PkQE69ate9ZNISL6057bEao6depg8eLFz7oZ\nT52rqyvGjRsHABCRl65AaufOnTFz5kwAwK1bt1C5cuVn3KKnKzw8HN7e3rC3t3/WTXnqLly4gNzc\nXPj5+WHw4MH4z3/+86ybRERUbs9toOratSssLJ7bAbT/mUqVKsHa2hoPHjzA2LFj8emnnz7rJj11\nFhYWmDRpEmbOnAkPD49n3Zyn5scff4StrS3atWv3rJvyTFSoUAH+/v5YtWoVpk+fjokTJ0Kn0z3r\nZhERlctzG6heZikpKRg8eDA8PT1fqkDxqPDwcMTGxmLKlCl4+PDhs27OU7F161b8+uuv8PX1xfnz\n5zFp0iTl+zFfBvXq1UOPHj2gUqlQr149VKlS5aXqPxG92F6+IaDn3N27d+Hn54epU6eidevWz7o5\nT11UVBRSU1MxcuRIWFlZQaVSwczs5cj9GzZsUP7t6+uLadOmwc7O7hm26OnasmULLl68iGnTpiE1\nNRUPHjx4qfpPRC+2l+M31Qtk2bJlyMrKwpIlS5S7nfLy8p51s54aFxcXnDt3DoMGDYK/vz+Cg4Nf\nygnaL6M+ffogOzsbAwYMwPjx4zF79uyX8rI/Eb2Y+OXIRERERCbiCBURERGRiRioiIiIiEzEQEVE\nRERkIgYqIiIiIhMxUBERERGZiIGKiIiIyEQMVEREREQm+n+gA15mEqF0hQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa711550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(6,4))\n",
    "ax.scatter(x=init_centroids[:, 0], y=init_centroids[:, 1])\n",
    "\n",
    "for i, node in enumerate(init_centroids):\n",
    "    ax.annotate('{}: ({},{})'.format(i, node[0], node[1]), node)\n",
    "    \n",
    "ax.scatter(x[0], x[1], marker='x', s=200)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_find_your_cluster(x, init_centroids)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1 epoch cluster assigning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X1</th>\n",
       "      <th>X2</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.842080</td>\n",
       "      <td>4.607572</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>5.658583</td>\n",
       "      <td>4.799964</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6.352579</td>\n",
       "      <td>3.290854</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.904017</td>\n",
       "      <td>4.612204</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.231979</td>\n",
       "      <td>4.939894</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         X1        X2  C\n",
       "0  1.842080  4.607572  2\n",
       "1  5.658583  4.799964  1\n",
       "2  6.352579  3.290854  0\n",
       "3  2.904017  4.612204  2\n",
       "4  3.231979  4.939894  2"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "C = assign_cluster(data2, init_centroids)\n",
    "data_with_c =combine_data_C(data2, C)\n",
    "data_with_c.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "See the first round clustering result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa5f1cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lmplot('X1', 'X2', hue='C', data=data_with_c, fit_reg=False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. calculate new centroid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 4.73487723,  2.0353857 ],\n",
       "       [ 4.29404584,  5.07873879],\n",
       "       [ 1.84130773,  4.50996357]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_centroids(data2, C)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# putting all together, take1\n",
    "this is just 1 shot `k-means`, if the random init pick the bad starting centroids, the final clustering may be very sub-optimal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 4\n",
      "running epoch 5\n",
      "running epoch 6\n",
      "running epoch 7\n"
     ]
    }
   ],
   "source": [
    "final_C, final_centroid, _= _k_means_iter(data2, 3)\n",
    "data_with_c = combine_data_C(data2, final_C)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/x8RVsqTZU+kzQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb8ab9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lmplot('X1', 'X2', hue='C', data=data_with_c, fit_reg=False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# calculate the cost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.79417636337158704"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cost(data2, final_centroid, final_C)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# k-mean with multiple tries of randome init, pick the best one with least cost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 4\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 4\n",
      "running epoch 5\n",
      "running epoch 6\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 4\n",
      "running epoch 5\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 4\n",
      "running epoch 5\n",
      "running epoch 6\n",
      "running epoch 7\n",
      "running epoch 8\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 4\n",
      "running epoch 5\n",
      "running epoch 6\n",
      "running epoch 7\n",
      "running epoch 0\n",
      "running epoch 1\n",
      "running epoch 2\n",
      "running epoch 3\n",
      "running epoch 4\n",
      "running epoch 5\n"
     ]
    }
   ],
   "source": [
    "best_C, best_centroids, least_cost = k_means(data2, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.79417636337158704"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "least_cost"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb9d7d68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_with_c = combine_data_C(data2, best_C)\n",
    "sns.lmplot('X1', 'X2', hue='C', data=data_with_c, fit_reg=False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# try sklearn kmeans"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.cluster import KMeans"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "sk_kmeans = KMeans(n_clusters=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n",
       "    n_clusters=3, n_init=10, n_jobs=1, precompute_distances='auto',\n",
       "    random_state=None, tol=0.0001, verbose=0)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sk_kmeans.fit(data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "sk_C = sk_kmeans.predict(data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xbcfd438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_with_c = combine_data_C(data2, sk_C)\n",
    "sns.lmplot('X1', 'X2', hue='C', data=data_with_c, fit_reg=False)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
